#pragma once

#include <list>
#include <string>
#include "IGUIElement.h"
#include "HashedString.h"

class GUIComboBox : public IGUIElement
{
public:
	GUIComboBox();
	void Paint();
	void Text( std::string& title );
	std::string Text() const;
	void DefaultText( std::string& defaultText );
	std::string DefaultText() const;
	void Font( std::string& font );
	void Font( HashedString& font );
	HashedString Font() const;
	void FontColor( unsigned int color );
	unsigned int FontColor() const;
	void Background( std::string& background );
	void Background( HashedString& background );
	HashedString Background() const;
	bool ReceiveEvent( IEvent& event );
	void AddItem( const std::string& item );
	void RemoveItem( std::string& item );
	bool ItemExists( std::string& item );
	std::string FindItem( std::string& item );
protected:
	std::string m_autocomplete;
	std::list<std::string> m_items;
	unsigned int m_cursorLocation;
	HashedString m_background;
	HashedString m_font;
	unsigned int m_fontColor;
	std::string m_text;
	std::string m_defaultText;
};